package ua.kpi.ipsa.expert.api.algorithm;

import java.util.*;

import ua.kpi.ipsa.expert.api.db.*;

/**
 * Basic interface for all algorithms. Must have a constructor that inputs an
 * object container.
 * 
 * @author alyaxey
 */
public interface Algorithm {
	public List<PlagiarismHypoTuple> process(int codeToAnalizeId,
			CodeRanker ranker, ProgressMonitor monitor);

	public String getName();

	/**
	 * @return array containing class full names of code presentation needed for
	 *         this algorithm
	 */
	public String[] getCodePresentationClasses();
}